package io.charstream;

import java.io.FileWriter;
import java.io.IOException;

public class FileWriteTest {
	public static void main(String[] args) throws IOException {
		//c:\day\output.txt 파일과 연결해서 문자(열)을 출력하는 메소드
		
		FileWriter fw = null;
		try{
			//1. 연결
			fw = new FileWriter("c:\\day\\output.txt");
			//2, 출력
			fw.write('A');//한글자 출력
			fw.write(new char[]{'H','e','l','l','o'});//char배열 - 배열의 문자들을 출력 ->배열객체 생성하면서 바로 값넣어주는 형태
			fw.write('반');//이것도 알파벳과 마찬가지로 한글자를 출력하는 것이다. 
			fw.write("\r\n4시가 다가옵니다.");//스트링도 출력이 가능하다. 역슬레쉬 r n은 타자기부터 흘러온 전통으로 다음줄로 넘어간다. 
			fw.write(20);//이놈은 깨져서 나온다, 왜그럴까? 프리미티브 타입을 문자열로 읽었을때 유니코드 상에서 전혀 다르다는거 
			//인트 타입의 4는 십진수에서 2진수로 변환해서 저장되는데 2진수로 변환한 그 숫자를 캐릭터타입의 스트림은 2바이트만 거기에서 읽어서
			//자기가 읽은 것과 문자표를 대질심문을 해서 나온 값을 출력하는 거기 때문에 반드시 깨질 수 밖에 없다. 
			fw.write('3');//이렇게 표현해야 숫자가 깨지지 않고 정상적으로 출력된다. 왜냐? 이번에는 저 숫자3이 정수값으로 들어간게 아니고 애초에
			//유니코드에 정해져있는 스트링 타입으로 들어갔기 때문이다.
			System.out.println(5);//이놈이 숫자 5가 정상적으로 출력되는 것은 무조건 sysout은 자신이 출력해야 하는 값을 스트링으로 바꿔서 출력하기 때문
		}finally{
			//3.연결닫기
			if(fw != null){
				fw.close();
			}
			
		}
	}
}
